HAL SAI IRQ handler and callbacks functions migration ¶
This section provides information about the HAL SAI callbacks register/unregister functions migration.
HAL SAI IRQ handler function ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_SAI_IRQHandler(&hsai)
|
HAL_SAI_IRQHandler(&hsai)
|
Related concept:
HAL SAI register/unregister callback functions ¶
HAL SAI register callback ¶
In HAL1, the function
HAL_SAI_RegisterCallback()
is used to register various SAI callbacks through a single function with a specific callback ID, whereas, in HAL2, distinct functions are available to register each specific SAI callback.
|
Function |
HAL 1 |
HAL 2 |
|---|---|---|
|
Tx Complete Callback |
HAL_SAI_RegisterCallback(&hsai,
HAL_SAI_TX_COMPLETE_CB_ID,
USER_SAI_TxCpltCallback);
|
HAL_SAI_RegisterTxCpltCallback(&hsai,
USER_SAI_TxCpltCallback);
|
|
Rx Complete Callback |
HAL_SAI_RegisterCallback(&hsai,
HAL_SAI_RX_COMPLETE_CB_ID,
USER_SAI_RxCpltCallback)
|
HAL_SAI_RegisterRxCpltCallback(&hsai,
USER_SAI_RxCpltCallback);
|
|
Tx Half Complete Callback |
HAL_SAI_RegisterCallback(&hsai,
HAL_SAI_TX_HALFCOMPLETE_CB_ID,
USER_SAI_TxHalfCpltCallback);
|
HAL_SAI_RegisterTxHalfCpltCallback(&hsai,
USER_SAI_TxHalfCpltCallback);
|
|
Rx Half Complete Callback |
HAL_SAI_RegisterCallback(&hsai,
HAL_SAI_RX_HALFCOMPLETE_CB_ID,
USER_SAI_RxHalfCpltCallback);
|
HAL_SAI_RegisterRxHalfCpltCallback(&hsai,
USER_SAI_RxHalfCpltCallback);
|
|
SAI error callback |
HAL_SAI_RegisterCallback(&hsai,
HAL_SAI_ERROR_CB_ID,
USER_SAI_ErrorCallback);
|
HAL_SAI_RegisterErrorCallback(&hsai,
USER_SAI_ErrorCallback);
|
|
SAI Msp init callback |
HAL_SAI_RegisterCallback(&hsai,
HAL_SAI_MSPINIT_CB_ID,
USER_SAI_MspInitCallback);
|
See Generated SAI initialization and de-initialization sequences for more details. |
|
SAI Msp Deinit callback |
HAL_SAI_RegisterCallback(&hsai,
HAL_SAI_MSPDEINIT_CB_ID,
USER_SAI_MspDeinitCallback);
|
See Generated SAI initialization and de-initialization sequences for more details. |
Related concept:
HAL SAI unregister callback ¶
In HAL2, the unregister callback API
HAL_SAI_UnRegisterCallback()
has been removed. Instead, callbacks can be managed by re-registering the default HAL SAI weak callbacks as needed.
|
Function |
HAL 1 |
HAL 2 |
|---|---|---|
|
Tx Complete Callback |
HAL_SAI_UnRegisterCallback(&hsai,
HAL_SAI_TX_COMPLETE_CB_ID);
|
HAL_SAI_RegisterTxCpltCallback(&hsai,
HAL_SAI_TxCpltCallback);
|
|
Rx Complete Callback |
HAL_SAI_UnRegisterCallback(&hsai,
HAL_SAI_RX_COMPLETE_CB_ID);
|
HAL_SAI_RegisterRxCpltCallback(&hsai,
HAL_SAI_RxCpltCallback);
|
|
Tx Half Complete Callback |
HAL_SAI_UnRegisterCallback(&hsai,
HAL_SAI_TX_HALFCOMPLETE_CB_ID);
|
HAL_SAI_RegisterTxHalfCpltCallback(&hsai,
HAL_SAI_TxHalfCpltCallback);
|
|
Rx Half Complete Callback |
HAL_SAI_UnRegisterCallback(&hsai,
HAL_SAI_RX_HALFCOMPLETE_CB_ID);
|
HAL_SAI_RegisterRxHalfCpltCallback(&hsai,
HAL_SAI_RxHalfCpltCallback);
|
|
SAI error callback |
HAL_SAI_UnRegisterCallback(&hsai,
HAL_SAI_ERROR_CB_ID);
|
HAL_SAI_RegisterErrorCallback(&hsai,
HAL_SAI_ErrorCallback);
|
|
SAI Msp init callback |
HAL_SAI_UnRegisterCallback(&hsai,
HAL_SAI_MSPINIT_CB_ID);
|
See Generated SAI initialization and de-initialization sequences for more details. |
|
SAI Msp Deinit callback |
HAL_SAI_UnRegisterCallback(&hsai,
HAL_SAI_MSPDEINIT_CB_ID);
|
See Generated SAI initialization and de-initialization sequences for more details. |
Related concept:
HAL SAI error callback ¶
|
HAL1 |
HAL2 |
|---|---|
void HAL_SAI_ErrorCallback(SAI_HandleTypeDef *hsai);
|
void HAL_SAI_ErrorCallback(hal_sai_handle_t *hsai);
|
HAL SAI receive complete callback ¶
|
HAL1 |
HAL2 |
|---|---|
void HAL_SAI_RxCpltCallback(SAI_HandleTypeDef *hsai);
|
void HAL_SAI_RxCpltCallback(hal_sai_handle_t *hsai);
|
HAL SAI receive half complete callback ¶
|
HAL1 |
HAL2 |
|---|---|
void HAL_SAI_RxHalfCpltCallback(SAI_HandleTypeDef *hsai);
|
void HAL_SAI_RxHalfCpltCallback(hal_sai_handle_t *hsai);
|
HAL SAI transmit complete callback ¶
|
HAL1 |
HAL2 |
|---|---|
void HAL_SAI_TxCpltCallback(SAI_HandleTypeDef *hsai);
|
void HAL_SAI_TxCpltCallback(hal_sai_handle_t *hsai);
|
HAL SAI transmit half complete callback ¶
|
HAL1 |
HAL2 |
|---|---|
void HAL_SAI_TxHalfCpltCallback(SAI_HandleTypeDef *hsai);
|
void HAL_SAI_TxHalfCpltCallback(hal_sai_handle_t *hsai);
|
HAL SAI callback type definition ¶
|
HAL1 |
HAL2 |
|---|---|
typedef void (*pSAI_CallbackTypeDef)(SAI_HandleTypeDef *hsai);
|
typedef void (*hal_sai_cb_t)(hal_sai_handle_t *hsai);
|